package main

import "fmt"

/**
Go 语言接口
Go 语言提供了另外一种数据类型即接口，它把所有的具有共性的方法定义在一起，
任何其他类型只要实现了这些方法就是实现了这个接口。
 */
 /**
 定义接口
  */
type Phone interface {
	call()
	sendMessages(message string)
}
/**
结构体
 */
type NokiaPhone struct {
}

func (nokiaPhone NokiaPhone) call() {
	fmt.Println("我是若基亚手机, 我可以给你打电话!")
}

func (nokiaPhone NokiaPhone) sendMessages(message string) {
	fmt.Println("我是若基亚手机, 发消息:" + message)
}

type IPhone struct {
}

func (iPhone IPhone) call() {
	fmt.Println("我是iPhone手机, 我可以给你打电话!")
}


func (iPhone IPhone) sendMessages(message string) {
	fmt.Println("我是iPhone手机, 发消息:" + message)
}

func main() {
	var phone Phone

	phone = new(NokiaPhone)
	phone.call()
	phone.sendMessages("诺基亚傻逼")

	phone = new(IPhone)
	phone.call()
	phone.sendMessages("iPhone傻逼")

}

